/*功能：表单验证
 *参数：要提交的表单对象
 *返回值：验证通过返回true,失败返回false
*/
function formValidate(form){
    //自定义html属性
    this.userDefTag = {
        "inputid" : "inputid",//错误信息所相关的文本框id，在显示错误信息的容器定义
        "validateType" : "validate",//验证类型，在文本框定义
        "regex" : "regex",//正则式，在文本框定义，如果没写validateType属性 则自动匹配regex中的正则
        "necessary" : "nesary"//是否必填项 在文本框定义，若为false，则该文本框可以空
        
    }
    //定义验证的类型
    this.regex = {
        "email" : "[_a-z0-9]+@([_a-z0-9]+\\.)+[a-z0-9]{2,3}",
        "realname" : "[\\u4E00-\\u9FA5]{2,5}",
        "mobile" : "1[3|4|5|8][0-9]\\d{4,8}"
    }
    
    
    //判断是否填写完整
    this.hasFillIn = function(){
        for(i=0;i<objs.length;i++){
            curNesary = nesary=$(objs[i]).attr(userDefTag['necessary'])
            if ($(objs[i]).val() == "" && nesary != "false") {
                    alert("请将表单填写完整！")
                    return false;
            }
        }
        return true
    }
    
    //判断两次密码输入是否一致
    this.isSame=function(){
        var pwd1 =  $("form").find(":password:eq(0)")
        var pwd2 = $("form").find(":password:eq(1)")
        var errorBar = $("["+userDefTag['inputid']+"='"+$(pwd2).attr('id')+"']")
        if (pwd1.val() == pwd2.val()) {
            $(errorBar).hide();
            return true
        }else{
            $(errorBar).show();
            return false
        }
    }
    //检查各输入是否匹配相应正则
    this.isMatch = function(){
        var flag = true
        for(i=0;i<objs.length;i++){
            var curRegex
            var errorBar = $("["+userDefTag['inputid']+"='"+$(objs[i]).attr('id')+"']")
            //当定义了验证类型
            if ($(objs[i]).attr( userDefTag["validateType"] ) != undefined) {
                curRegex = regex[ $(objs[i]).attr( userDefTag["validateType"] ) ]
            //当定义了正则式
            }else if($(objs[i]).attr(userDefTag["regex"]) != undefined){
                curRegex = $(objs[i]).attr(userDefTag["regex"])
            }else{
                continue
            }
            //是否匹配
            if (!new RegExp(curRegex).test($(objs[i]).val())) {
                    $(errorBar).show();
                    flag = false;
            }else{
                    $(errorBar).hide();
            }
        }
        return flag;
    }
    
    var mFlag = true
    var objs = $(form).find("input")
    if(!this.hasFillIn()){
        return false
    }
    if (!isMatch()) {
        mFlag = false
    }
    if($(form).find(":password").length==2){
        if (!isSame()) {
            mFlag = false
        }
    }
    return mFlag
}